<?php
/**
 * aint-queue.php class file.
 * @author wudg <544038230@qq.com>
 * @date 2021/1/8- 下午2:11
 */
use Littlesqx\AintQueue\Driver\Redis\Queue as RedisQueue;
use Littlesqx\AintQueue\Logger\DefaultLogger;
use Monolog\Logger;
return [
    //上货队列
    'goodsCopy' => [
        'driver' => [
            'class' => RedisQueue::class,
            'connection' => [
                'host' => 'dnmp-redis',
                'port' => 6379,
                'database' => '0',
                // 'password' => 'password',
            ],
        ],
        'logger' => [
            'class' => DefaultLogger::class,
            'options' => [
                'level' => Logger::DEBUG,
            ],
        ],
        'pid_path' => Yii::getAlias('@runtime/run/copy-queue'),
        'consumer' => [
            'sleep_seconds' => 1, //每次从队列中弹出一个空消息后，睡眠秒数。
            'memory_limit' => 96, //工作进程将在其内存使用超过限制时重新加载。单位Mb
            'dynamic_mode' => true, //是否动态确定worker数
            'capacity' => 6, //代表每个工作进程在短时间内并且健康状态下的最多处理消息数，它影响了工作进程的自动伸缩策略。
            'flex_interval' => 5 * 60, //每 flex_interval 秒，监控进程尝试调整工作进程数（假设开启了自动伸缩工作进程）。
            'min_worker_number' => 10, //工作进程最小数目。
            'max_worker_number' => 100, //工作进程最大数目。
        ],
        //每隔 job_snapshot.interval 秒，job_snapshot.handles 会被依次执行。job_snapshot.handles 需要实现 JobSnapshotterInterface。
        'job_snapshot' => [
            'interval' => 5 * 60,
            'handler' => [],
        ],
    ],
    //入云库队列
    'goodsCloud' => [
        'driver' => [
            'class' => RedisQueue::class,
            'connection' => [
                'host' => 'dnmp-redis',
                'port' => 6379,
                'database' => '0',
                // 'password' => 'password',
            ],
        ],
        'logger' => [
            'class' => DefaultLogger::class,
            'options' => [
                'level' => Logger::DEBUG,
            ],
        ],
        'pid_path' => Yii::getAlias('@runtime/run/cloud-queue'),
        'consumer' => [
            'sleep_seconds' => 1, //每次从队列中弹出一个空消息后，睡眠秒数。
            'memory_limit' => 96, //工作进程将在其内存使用超过限制时重新加载。单位Mb
            'dynamic_mode' => true, //是否动态确定worker数
            'capacity' => 6, //代表每个工作进程在短时间内并且健康状态下的最多处理消息数，它影响了工作进程的自动伸缩策略。
            'flex_interval' => 5 * 60, //每 flex_interval 秒，监控进程尝试调整工作进程数（假设开启了自动伸缩工作进程）。
            'min_worker_number' => 1, //工作进程最小数目。
            'max_worker_number' => 10, //工作进程最大数目。
        ],
        //每隔 job_snapshot.interval 秒，job_snapshot.handles 会被依次执行。job_snapshot.handles 需要实现 JobSnapshotterInterface。
        'job_snapshot' => [
            'interval' => 5 * 60,
            'handler' => [],
        ],
    ],
    //采集队列
    'goodsSpider' => [
        'driver' => [
            'class' => RedisQueue::class,
            'connection' => [
                'host' => 'dnmp-redis',
                'port' => 6379,
                'database' => '0',
                // 'password' => 'password',
            ],
        ],
        'logger' => [
            'class' => DefaultLogger::class,
            'options' => [
                'level' => Logger::DEBUG,
            ],
        ],
        'pid_path' => Yii::getAlias('@runtime/run/spider-queue'),
        'consumer' => [
            'sleep_seconds' => 1, //每次从队列中弹出一个空消息后，睡眠秒数。
            'memory_limit' => 96, //工作进程将在其内存使用超过限制时重新加载。单位Mb
            'dynamic_mode' => true, //是否动态确定worker数
            'capacity' => 6, //代表每个工作进程在短时间内并且健康状态下的最多处理消息数，它影响了工作进程的自动伸缩策略。
            'flex_interval' => 5 * 60, //每 flex_interval 秒，监控进程尝试调整工作进程数（假设开启了自动伸缩工作进程）。
            'min_worker_number' => 1, //工作进程最小数目。
            'max_worker_number' => 1, //工作进程最大数目。
        ],
        //每隔 job_snapshot.interval 秒，job_snapshot.handles 会被依次执行。job_snapshot.handles 需要实现 JobSnapshotterInterface。
        'job_snapshot' => [
            'interval' => 5 * 60,
            'handler' => [],
        ],
    ]
];